常用命令 您所在的位置:网站首页 linux查看uid gid 常用命令

常用命令

#常用命令| 来源: 网络整理| 查看: 265

目录

目录目录1.帮助命令man2.文件和目录操作命令lscdmkdircpmvrmtouchbasename dirnamechattr lsattrmd5sum3.查看文件及内容处理命令vim vicat 查看文件内容more lesstail headcut 提取字段、字符uniq 去重sort 排序wc 统计tr 字符操作vimdiff dos2unix4.文件压缩、解压缩targzip zip unzip5.信息显示命令unamehostname查看主机名uptime wstat 查看文件状态信息top 查看系统中进行的程序free 查看内存和swapdatedmesg 显示系统启动过程信息6.搜索命令文件位置whichwhereislocate7.用户管理命令susudo visudouseradd、userdel、usermodgroupadd、groupmems、groupmodchage8.网络操作命令ifconfigippingroutetelnetsshscpwgetncnetstat ss9.深入网络操作命令nslookupdigtraceroutemtrtcpdumpnamplsof10.磁盘、文件系统的命令mount umountdu df磁盘分区命令fdiskpartedgdiskresize2fsxfs_growfs xfs_repairfsck e2fsckdddumpe2fsdumpmkfspartprobemkswap swapon swapoffsync11.系统关机12.权限管理命令chmodchownumasksetfaclsudo 用户提权13.查看系统用户登陆信息whoamiwhowlast lastb14.系统性能监视vmstatmpstatiostatsar15.进程管理命令ipcs ipcrm ipcmkkill pkill killallpgrepps pstreecontab设置周期计划任务jobs,fg,bgstrace lstrace16.四剑客grep egrep正则、扩展正则sedawk内置变量awk脚本基本结构find17.其他rpm,yum --软件包管理rpmyumhistorywatchnice

1.帮助命令 man man [章节] 命令 man ls man 5 passwd

image-20230507152823680

help info

2.文件和目录操作命令 ls ls -l #显示文件详细信息 ls -a #显示全部文件,包括隐藏文件 cd cd - #切换到上次操作所目录 cd .. #切换到上级目录 cd ~ #切换到用户家目录 mkdir mkdir -p /dir/file #递归创建目录 cp cp -r /dir /tmp #递归拷贝 cp test{,.bak} mv mv 1.txt /tmp #移动 mv 1.txt 1.yaml #重命名 rm rm file rm -rf #递归,强制删除 touch touch file #文件存在会更新时间戳 basename dirname

basename 只显示文件、目录名

dirname 显示文件/目录前面的路径

chattr lsattr chattr +i 1.txt #禁止删除,只能增加内容 lsattr #查看文件的第二扩展文件系统属性 md5sum md5sum file #生成md5值 md5sum test.txt >test.md5 md5sum -c test.md5 test.txt: OK 3.查看文件及内容处理命令 vim vi

三种模式:一般模式、插入模式、命令行模式

a,bs/text/text2/g #a,b行进行查找替换,没用ab默认当前行匹配,g表示整行匹配到的都替换 a,i,o,O,I,A,C #都会进入编辑 dd,yy,p,P #删除,复制,粘贴 gg,G,0 #首行,最后一行,光标到行首 ZZ #wq :$ #跳到最后一行行首 v #可视化 ctrl+v #可视化块 cat 查看文件内容 cat test.txt nginx1 test4 nginx2 test5 nginx3 test6 cat ##test.txt /proc/sys/net/ipv4/tcp_fin_timeout #通过缩短时间 time_wait 时间来快速释放链接 9.深入网络操作命令 nslookup

查询域名DNS信息 /etc/resolv.conf

nslookup(选项)(参数)(DNS服务器) nslookup会连接到默认的域名服务器即/etc/resolv.conf的第一个dns地址 nslookup www.baidu.com nslookup www.baidu.com 8.8.8.8 dig

可以用来测试域名系统工作是否正常

dig(选项)(参数) -b:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求 dig www.baidu.com traceroute

用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节

traceroute(选项)(参数) traceroute www.baidu.com traceroute -m 10 www.baidu.com # 跳数设置 traceroute -n www.baidu.com # 显示IP地址,不查主机名 traceroute -p 6888 www.baidu.com # 探测包使用的基本UDP端口设置6888 traceroute -q 4 www.baidu.com # 把探测包的个数设置为值4 traceroute -r www.baidu.com # 绕过正常的路由表,直接发送到网络相连的主机 traceroute -w 3 www.baidu.com # 把对外发探测包的等待响应时间设置为3秒 mtr

MTR工具使用说明与结果分析 (aliyun.com)

MTR简介

MTR(My traceroute)是几乎所有Linux操作系统发行版本预装的网络测试工具,此工具也有对应的Windows操作系统版本,名称为WinMTR。WinMTR是MTR工具在Windows操作系统下的图形化实现,但进行了功能简化,仅支持设置MTR的部分参数。 MTR工具将ping和traceroute命令的功能并入了同一个工具中,实现更强大的功能。 mtr命令默认发送ICMP数据包进行链路探测。Linux操作系统上可以通过-u参数来指定使用UDP数据包用于探测, 而Windows操作系统上,WinMTR无法切换UDP数据包 tcpdump

tcpdump抓包_tcpdump抓包命令_mayue_csdn的博客-CSDN博客

tcpdump命令 是一款抓包,嗅探器工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

在这里插入图片描述

tcpdump(选项) tcpdump -i eth1 #监视指定网络接口的数据包 tcpdump -i eth0 src host hostname #截获主机hostname发送的所有数据 tcpdump -i eth0 dst host hostname #监视所有送到主机hostname的数据包 tcpdump tcp port 23 and host 210.27.48.1 #获取主机210.27.48.1接收或发出的telnet包 namp

namp命令是一种网络扫描器,可以用来探测主机、子网、端口、操作系统、服务等信息

Nmap [ 扫描类型 … ] [ 通用选项 ] { 扫描目标说明 }

Nmap 常用基础命令详解-腾讯云开发者社区-腾讯云 (tencent.com)

namp常用命令_YUKIDDDD的博客-CSDN博客

lsof

Linux lsof 命令 - sparkdev - 博客园 (cnblogs.com)

lsof 是 LiSt Open Files 的缩写,用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP),找回/恢复删除的文件

-a 指示其它选项之间为与的关系 -c 输出指定进程所打开的文件 -d 列出占用该文件号的进程 +d 输出目录及目录下被打开的文件和目录(不递归) +D 递归输出及目录下被打开的文件和目录 -i 输出符合条件与网络相关的文件 -n 不解析主机名 -p 输出指定 PID 的进程所打开的文件 -P 不解析端口号 -t 只输出 PID -u 输出指定用户打开的文件 -U 输出打开的 UNIX domain socket 文件 -h 显示帮助信息 -v 显示版本信息 lsof /etc/passwd #那个进程在占用/etc/passwd lsof -u1000 #查看uid是100的用户的进程的文件使用情况 lsof -i:80 #显示所有打开80端口的进程 -i TCP:1-1024 lsof -p 1152 #指定进程的 PID 可以输出该进程打开的所有文件

恢复删除文件

原理为: 当进程打开了某个文件时,只要该进程保持打开该文件,即使将文件删除,它依然存在于磁盘中。

lsof -i:80 找到使用被删除文件的进程,pid 和文件描述符 描述符所在路径 /proc/$pid/fd/文件描述符 cat /proc/8838/fd/7 >> file 10.磁盘、文件系统的命令 mount umount

mount 挂载磁盘

-a:将 /etc/fstab 中定义的进行挂载 -t: 指定文件系统 :nfs -w: 读写挂载 -s-r: 只读挂载 -o sync、async、defaults

umout 卸载磁盘

umount 挂载点/磁盘

du df

du

du -h file -s, --summarize 仅显示总计,只列出最后加总的值。

df

df -hT df -i #inode号使用情况 磁盘分区命令 fdisk

查看磁盘使用情况和磁盘分区

fdisk [选项] -l, --list 显示分区 #进入分区后 n 创建分区 p 打印分区 w 保存 m 帮助 t 更改分区描述 parted

磁盘大于2T的场景使用

parted [选项] [设备名] [命令] -a:指定对齐方式。 -s:不提示用户。 -l:列出所有分区信息 -i:交互式模式; gdisk gdisk 仅支持gpt gdisk -l 查看gpt分区信息 gdisk 设备名 :分区 n:创建新分区 d:删除分区 p:打印分区表 t:修改分区id w:保存分区表退出 q:不保存退出 resize2fs

用于调整ext系列文件系统的大小

-P 显示预期操作 -p 显示进度 -s 显示详细信息 # 检查文件系统 e2fsck -f /dev/sda1 # 调整文件系统大小 resize2fs /dev/sda1 20G xfs_growfs xfs_repair

xfs_growfs用于扩大xfs文件系统的容量

xfs_repair检查修复xfs文件系统

xfs_growfs [options] mountpoint # 检查文件系统 xfs_repair /dev/sda1 # 扩展文件系统 xfs_growfs /mnt fsck e2fsck

检查并且试图修复ext文件系统中的错误

-a:自动修复文件系统,不询问任何问题 -r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式 fsck -y /dev/hda2 #e2fsck -y 自动修复 -f 强制修复 dd dd if=/dev/zero of=sun.txt bs=1M count=1 bs= 块大小; count= 区块数 of=:输出到文件 if= 输入文件 dumpe2fs

显示ext2、ext3、ext4文件系统的超级快和块组信息

-b 显示文件系统中保留的损坏块 -o superblock=superblock 检查文件系统时,使用指定大小的超级块。此选项通常不需要,除非文件系统向导正在检查严重损坏的文件系统的剩余部分。 -o blocksize=blocksize 检查文件系统时,指定块大小。此选项通常不需要,除非文件系统向导正在检查严重损坏的文件系统的剩余部分。 -f 强制执行 -h 只显示superblock(超级块)信息,而不显示任何块组描述符详细信息 -i 显示从e2image获得的文件系统信息,使用设备作为image文件的路径名。 -x 以十六进制显示文件系统信息 -V 显示命令版本信息,并且退出 dumpe2fs -b /dev/sda1 #打印坏块 dumpe2fs /dev/sda1 #打印文件系统上的超级块和块组信息 dump

用于备份ext文件系统

dump(选项)(参数) -0:表示进行完整备份。 -u:表示更新备份。 -f:表示指定备份文件名。 -z:表示使用 gzip 压缩。 -j:表示使用 bzip2 压缩。 dump -0uj -f /root/boot.bak.bz2 /boot/ mkfs

格式化文件系统

mkfs(选项)(参数) fs:指定建立文件系统时的参数; -t:指定要建立何种文件系统; -v:显示版本信息与详细的使用方法; -V:显示简要的使用方法; -c:在制做档案系统前,检查该partition是否有坏轨。 mkfs -t ext4 /dev/sdb1 mkfs.ext4 mkfs.xfs partprobe

分区后刷新分区表

mkswap swapon swapoff

创建swap交换分区

mkswap(选项)(参数) -c:建立交换区前,先检查是否有损坏的区块; mkswap /dev/sdb2

swapon 激活swap分区

-a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区 -s:显示交换区的使用状况 mkswap -c /dev/hdb4 (-c是检查有无坏块) swapon -v /dev/hdb4

swapoff关闭交换分区

swapoff /dev/sda2 sync

将内存中的数据写入硬盘

buffer:为了解决写磁盘的效率 cache:为了解决读磁盘的效率 11.系统关机

shutdown

shutdown -h now 指定现在立即关机

halt

halt -p # 关闭系统后关闭电源。 halt -d # 关闭系统,但不留下纪录。

init

#0 停机(千万不能把initdefault 设置为0) #1 单用户模式 #2 多用户,没有 NFS(和级别3相似,会停止部分服务) #3 完全多用户模式 #4 没有用到 #5 x11(Xwindow) #6 重新启动(千万不要把initdefault 设置为6) 12.权限管理命令

文件目录权限:

r 4

w 2

x 1

目录默认最大777

文件默认最大666

文件:

r 读取文件内容,使用cat、more等命令查看

w 可以编辑修改文件内容

x 执行文件

目录:

r 可以查看目录下的文件,使用ls命令

w 可以新建,删除目录下的文件,重命名文件

x 能否进入到目录下

对于目录而言,至少要有rx权限

复制文件要对文件有r权限,对文件的目录有x权限

chmod

更改文件权限

chmod u+x test.txt chmod 755 test.txt suid

以文件拥有人的身份执行程序(不能用在脚本上),二进制可执行文件/程序 chmod u+s chmod 4755

sgid

以文件拥有组的身份执行程序(不能用在脚本上),二进制可执行文件/程序 用在目录上,该目录下创建的所有文件和目录的拥有组都继承该目录的拥有组,

chmod g+s chmod 2755

sticky

公共目录,每个用户只能管理自己的文件,root除外。

chmod o+t chmod 1755

chown

更改文件拥有人,属组

chown user:group file -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理; umask

/etc/profile中定义值

用户uid=199的用户 umask值为002

setfacl

设置ACL权限 会改变文件的mask值,默认权限,文件的mask值,默认权限可能会影响用户设置的acl权限

setfacl 设置acl权限

getfacl 查看acl权限

setfacl -m 设置和修改文件的acl权限 命令 功能 setfacl -m u:user1:rwx /file 给指定用户设置acl权限 setfacl -m u::rwx /file 给文件的拥有人设置acl权限 setfacl -m g:group1:rwx /file 给指定组设置acl权限 setfacl -m g::rwx /file 给文件拥有组设置acl权限 setfacl -m o::rx /file 给文件其他人设置acl权限 setfacl -m m::rwx /file 设置文件的mask值

​ -n 可以避免设置acl权限时影响文件的mask值

setfacl -x 删除单个acl权限 :setfacl -x u:user1 /file

setfacl -b 清空文件的acl权限 setfacl -b /file

​ -R 递归acl权限

设置默认的acl权限,一般设置于目录 setfacl -m d:u:user1:rwx /directory

sudo 用户提权

配置文件

/etc/sudoers /etc/sudoers.d/

配置语法

image-20220416095652440

支持别名,别名要大写

主机别名:Host_Alias 主机别名 = 主机1,主机2 用户别名:User_Alias 用户别名 = 用户1, 用户2 命令别名:Cmnd_Alias 命令别名 = 命令1,命令2 13.查看系统用户登陆信息 whoami whoami root who who root tty1 2022-12-07 17:00 root pts/0 2023-05-07 15:07 (11.0.1.1) w w 16:12:52 up 2 days, 1:13, 2 users, load average: 0.67, 0.36, 0.27 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 07Dec22 7days 4.33s 4.33s -bash root pts/0 11.0.1.1 Sun15 4.00s 0.71s 0.71s -bash last lastb

last查看登录成功的信息

lastb查看登录失败的信息

14.系统性能监视 内存:top free vmstat mpstat iostat sar CPU: top vmstat mpstat iostat sar I/O: vmstat mpstat iostat sar 进程: ipcs ipcrm lsof strace ltrace ps 负载: uptime vmstat

vmstat命令 的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态

vmstat(选项)(参数) -a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位。 vmstat 1 5 # 每秒打印一次,共输出5次 vmstat -S m 1 10 # -S k 按kb单位展示,m 按mb单位展示,每秒打印一次,共输出10次 vmstat 3 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0 0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0 0 0 320 42188 167336 1534392 0 0 0 19 1002 44 0 0 100 0 0 0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0 0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0 字段说明:

Procs(进程)

r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1) b: 等待IO的进程数量。

Memory(内存)

swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。 free: 空闲物理内存大小。 buff: 用作缓冲的内存大小。 cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

Swap

si: 每秒从交换区写到内存的大小,由磁盘调入内存。 so: 每秒写入交换区的内存大小,由内存调入磁盘。

注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO(现在的Linux版本块的大小为1kb)

bi: 每秒读取的块数 bo: 每秒写入的块数

注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system(系统)

in: 每秒中断数,包括时钟中断。 cs: 每秒上下文切换数。

注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。

CPU(以百分比表示)

us: 用户进程执行时间百分比(user time)

us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。

sy: 内核系统进程执行时间百分比(system time)

sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

wa: IO等待时间百分比

wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

id: 空闲时间百分比 mpstat

mpstat命令 主要用于多CPU环境下,它显示各个可用CPU的状态信息。这些信息存放在/proc/stat文件中

mpstat [选项] [ []] -P:指定CPU编号。 mpstat -P ALL 2 3 #2s一次 3次 mpstat Linux 3.10.0-1160.71.1.el7.x86_64 (centos) 08/14/2022 _x86_64_ (4 CPU) 04:28:36 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:28:36 PM all 0.03 0.00 0.07 0.00 0.00 0.01 0.00 0.00 0.00 99.89 %user:表示处理用户进程所使用CPU的百分比。 %nice:表示在用户级别处理经nice降级的程序所使用CPU的百分比。 %system:表示内核进程使用的CPU百分比。 %iowait:表示等待进行I/O所占用CPU时间百分比。 %irq:表示用于处理系统中断的CPU百分比。 %soft:表示用于处理软件中断的CPU百分比。 %steal:在管理程序为另一个虚拟处理器服务时,显示虚拟的一个或多个CPU在非自愿等待中花费的时间的百分比。 %guest:表示一个或多个CPU在运行虚拟处理器时所花费的时间百分比。 %gnice:表示一个或多个CPU在运行经nice降级后的虚拟处理器时所花费的时间百分比。 %idle:CPU的空闲时间百分比。 iostat

iostat命令 被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析

iostat [选项] [时间间隔] [次数] -c:仅显示CPU使用情况; -d:仅显示设备利用率; -k:显示状态以千字节每秒为单位,而不使用块每秒; -m:显示状态以兆字节每秒为单位; -p:仅显示块设备和所有被使用的其他分区的状态; -t:显示每个报告产生时的时间; -V:显示版号并退出; -x:显示扩展状态。 iostat 2 3 iostat /dev/sda Linux 3.10.0-957.el7.x86_64 (master) 05/08/2023 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.21 0.00 1.50 0.03 0.00 97.25 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 7.14 7.63 49.39 1410831 9136458 磁盘设备利用情况报告: Device:设备名称。 tps:每秒向磁盘设备请求数据的次数,包括读、写请求。 Blk_read/s:每秒从设备读取的数据量 (以扇区或者KB为单位)。 Blk_wrtn/s:每秒向设备写入的数据量 (以扇区或者KB为单位)。 Blk_read:从系统启动到当前读取的总数据量 (以扇区或者KB为单位)。 Blk_wrtn:从系统启动到当前写入的总数据量 (以扇区或者KB为单位)。 网络文件系统利用情况报告: op/s:每秒执行的操作数。 rpc_bklog/s:每秒RPC请求队列中等待执行的请求数。

如果使用-x选项,可以显示更详细的磁盘设备利用情况报告,包括以下内容:

rrqm/s:每秒对该设备的读请求被合并次数。 wrqm/s:每秒对该设备的写请求被合并次数。 r/s:每秒完成的读 I/O 设备次数。 w/s:每秒完成的写 I/O 设备次数。 rkB/s:每秒读数据量 (以KB为单位)。 wkB/s:每秒写数据量 (以KB为单位)。 avgrq-sz:平均每次设备I/O操作的数据大小 (以扇区为单位)。 avgqu-sz:平均I/O队列长度。 await:平均每次设备I/O操作的等待时间 (以毫秒为单位)。 svctm:平均每次设备I/O操作的服务时间 (以毫秒为单位)。 %util:一秒中有百分之多少的时间用于 I/O 操作。 sar

系统运行状态统计工具

sar [options] [-A] [-o file] [interval] [count] -A: 显示所有的报告信息; -b: 显示I/O速率; -B: 显示换页状态; -c: 显示进程创建活动; -d: 显示每个块设备的状态; -e: 设置显示报告的结束时间; -f: 从指定文件提取报告; -i: 设状态信息刷新的间隔时间; -n: 报告网络统计信息。 -P: 报告每个CPU的状态; -R: 显示内存状态; -u: 显示CPU利用率; -v: 显示索引节点,文件和其他内核表的状态; -w: 显示交换分区状态; -x: 显示给定进程的状态。 -r: 以分页方式显示输出,每页最多显示 100 行。 -o: 输出选项,指定要显示的列。例如,`-o mrk,prt,cvg` 将显示 CPU 使用率、进程标识符、磁盘使用率 和 网络流量。 -t: 时间戳选项,指定要在输出中添加时间戳。 -s: 统计选项,指定要显示的统计数据的类型。例如,`-s us,ms` 将显示 CPU 使用率的 us 和 ms 时间段的平均值。 -c: 选项用于指定要发送的命令。例如,`-c ls` 将显示当前目录中的文件和子目录列表。 15.进程管理命令 ipcs ipcrm ipcmk

ipcs

分析消息队列共享内存和信号量,进程间通信的状态

ipcs(选项) -a, --all 显示全部(默认值) -q, --queues 消息队列 -m, --shmems 共享内存 -s, --semaphores 信号量 -t, --time 显示最后一次操作时间 -p, --pid 显示创建者和最后一次操作者的PID -c, --creator 显示创建者和拥有者的 userid, groupid -l, --limits 显示对资源的限制 -u, --summary 显示当前状态摘要 --human 以友好的方式显示大小(eg: 500K) -b, --bytes 以字节为单位显示大小(仅影响`-l`选项) -i, --id 显示指定ID的资源 -h, --help 显示帮助文档并退出 -V, --version 显示版本信息并退出

ipcrm

删除消息队列、信号集、或者共享内存标识,删除IPC资源

ipcrm [ -m SharedMemoryID ] [ -M SharedMemoryKey ] [ -q MessageID ] [ -Q MessageKey ] [ -s SemaphoreID ] [ -S SemaphoreKey ]

ipcmk

创建IPC资源

ipcmk -M size 创建一个大小为size字节的共享内存 ipcmk -Q 创建一个消息队列 ipcmk -S number 创建一个包含number个元素的信号量数组 ipcmk -p mode 设置资源的访问权限,缺省为0644 kill pkill killall

kill

kill通过手动发送信号操作进程。

kill -15 pid kill -l #查看信号 15 正常结束,默认值,让进程自己结束 9 强制结束,终端或者内核将进程结束。 1 重新加载配置文件 19 将进程后台暂停

killall

使用进程的名称来杀死一组进程

killall -9 vim

pkill

可以按照进程名杀死进程

pgrep -l gaim 2979 gaim pkill gaim pgrep

根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID(PID)

pgrep(选项)(参数) 选项 -U: 查找某个用户的进程id -G: 查找某个组的进程id -P: 根据父进程ID,查找所有子进程id -l 打印进程名 -o 程序先启动的进程的pid -n 程序后启动的进程pid -d 定义多个进程之间的分隔符,默认换行符 ps pstree

ps

查看进程

-a 查看所有终端的进程 -u 打印进程的详细信息,包裹进程的拥有人,使用百分比 -x 打印不属于任何终端的进程 -e 所有进程 包括终端和非终端的 -f 额外信息 ef组合用 -o 指定输出信息格式 #ps -axo pid,user,command --sort 指定排序参数 支持升/降序 +/- ps aux --sort=-%mem

pstree

pstree命令 以树状图的方式展现进程之间的派生关系

-p:显示pid; -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示; -u:显示用户名称; contab

周期计划任务

crontab -l #列出当前用户下的 cron 服务的详细内容 crontab -u user1 -l #列出指定用户 user1 下的 cron 服务的详细内容 crontab -r #删除 cron 服务 crontab -e #编辑 cron 服务 /var/spool/cron 存放计划任务 设置周期计划任务 建议不使用crontab管理命令来创建周期计划任务,而是在/etc下相关文件写周期任务 #相关文件 /etc/contab #系统任务调度配置文件 /etc/cron.d/ #自定义任务 /etc/cron.deny #拒绝的用户 /etc/cron.allow #允许的用户 cron.monthly/ #每月执行的脚本; cron.weekly/ #每周执行的脚本; cron.daily/ #每天执行的脚本; cron.hourly/ #每小时执行的脚本; 任务书写规则 分 时 日 月 周 用户 命令(尽量写绝对路径) 分:0-59 时:0-23 日:1-31 月:1-12 周:0-7 特殊符号: *代表任意 /指定间隔时间 */10 每隔10分钟执行 -代表从某个数字到某个数字之间执行 7-12 , 6,10-13,20 指定时间 6点,10到13点,20点执行 jobs,fg,bg

jobs查看当前终端的后台任务

vim 1.txt & #将任务放到后台运行

fg

fg %jobnum 将后台进程放在前台运行

bg

bg %jobnum (恢复)后台运行

strace lstrace

strace命令是用来跟踪进程执行时的系统调用和所接收的信号的,它可以帮助我们诊断、调试和统计程序的行为

深入分析使用

c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息. -f 跟踪由fork调用所产生的子进程. -t 在输出中的每一行前加上时间信息. -T 显示每一调用所耗的时间. -v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出. -V 输出strace的版本信息. -e expr 指定一个表达式,用来控制如何跟踪.格式:[qualifier=][!]value1[,value2]... -e trace=set 只跟踪指定的系统 调用.例如:-e trace=open,close,rean,write表示只跟踪这四个系统调用.默认的为set=all. -e trace=file 只跟踪有关文件操作的系统调用. -e trace=process 只跟踪有关进程控制的系统调用. -e trace=network 跟踪与网络有关的所有系统调用. -e strace=signal 跟踪所有与系统信号有关的 系统调用 -e signal=set 指定跟踪的系统信号.默认为all.如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号. -e read=set 输出从指定文件中读出 的数据.例如: -e read=3,5 -e write=set 输出写入到指定文件中的数据. -o filename 将strace的输出写入文件filename -p pid 跟踪指定的进程pid. -u username 以username的UID和GID执行被跟踪的命令

ltrace

用来跟踪进程调用库函数的情况

ltrace [option ...] [command [arg ...]] -a 对齐具体某个列的返回值。 -c 计算时间和调用,并在程序退出时打印摘要。 -C 解码低级别名称(内核级)为用户级名称。 -d 打印调试信息。 -e 改变跟踪的事件。 -f 跟踪子进程。 -h 打印帮助信息。 -i 打印指令指针,当库调用时。 -l 只打印某个库中的调用。 -L 不打印库调用。 -n, --indent=NR 对每个调用级别嵌套以NR个空格进行缩进输出。 -o, --output=file 把输出定向到文件。 -p PID 附着在值为PID的进程号上进行ltrace。 -r 打印相对时间戳。 -s STRLEN 设置打印的字符串最大长度。 -S 显示系统调用。 -t, -tt, -ttt 打印绝对时间戳。 -T 输出每个调用过程的时间开销。 -u USERNAME 使用某个用户id或组ID来运行命令。 -V, --version 打印版本信息,然后退出。 -x NAME treat the global NAME like a library subroutine.(求翻译) 16.四剑客 grep egrep -AX #匹配行及后面X行 -BX #匹配行及前面X行 -CX #匹配行前后X行 -i #忽略大小写 -q #静默输出 -o #仅显示匹配到的内容 -n #显示行号 -c #统计匹配到的行数 -v #匹配结果取反 -E #扩展正则表达式 正则、扩展正则

image-20220329220849119

字符 作用 + 匹配前一个字符一次或多次 [😕]+ 匹配:或/一次或多次 ? 匹配前一个字符0次或1次 \ 表示或者,同时过滤多个字符串 () 括号内的视为一个整体,分组 a 匹配前面的字符n到m次 a 匹配前面的字符n到多次 a 匹配前面的字符n次 a 匹配前面的字符最多m次 \w 匹配数字字符和英文大小写[0-9a-zA-Z] \W 匹配一个或多个非单词字符,如句号点号 sed

流编辑器

文件--->模式空间---->屏幕

正在处理的内容存放在模式空间(缓冲区)内,处理完成后 按照选项的规定进行输出或文件的修改

sed options... [SCRIPT] [FILE...] -r #支持扩展正则 -n #静默输出 -i #直接修改源文件 -e #多个匹配规则操作 -i.bak #修改源文件,并生成备份 -----命令 p 打印内容 d 删除匹配的行 a\text 在匹配到的行后追加内容 text i\text 前追加内容 c\text 替换匹配的行 s/regexp/replacement/flags 查找并替换 g全局替换, i忽略大小写 w /path/to/somefile 将匹配到的内容另存到指定的文件 g 全局替换 字符 解释 # #表示数字,指定要进行处理操作的行 $ 表示最后一行 /regexp/ 表示能够被regexp匹配到的行,可用#,%替换/ /regexp/l 匹配时忽略大小写 addr1,addr2 表示指定范围内的所有行,用数字(行号),也可以使用regexp代替 first~step 指定起始行以及步长 addr1,+N 指定行及以后的N行 sed-n 5p passwd 打印第5行 sed-n $p passwd 打印最后一行 sed-n '1,5p' passwd 打印第1-5行 sed-n '/root/lp' passwd 匹配带有root关键词的行,并忽略大小写 sed -n'\%root%lp' passwd 同上 sed'1,5d' passwd 删除第1-5行 sed-i.bak'1,5d' passwd 删除第1-5行,源文件被修改 sed'2a\abc' passwd 在文件第2行下面追加abc awk

文本和数据进行处理的编程语言

awk脚本是由模式和操作组成的。

模式

/正则表达式/:使用通配符的扩展集。 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。 模式匹配表达式:用运算符~(匹配)和!~(不匹配)。 BEGIN语句块、pattern语句块、END语句块:参见awk的工作原理

操作

变量或数组赋值 输出命令 内置函数 控制流语句 awk [options] ' script' var=value file(s) awk [options] -f scriptfile var=value file(s) -F #指定分隔符 -v var=value #定义变量 -f #从脚本文件读取awk命令 内置变量 内置变量 解释 FS 输入字段分割符,默认位空格 OFS 输出字段分隔符,默认为空格 RS 输入记录分隔符(换行符),指定输入时的换行符 ORS 输出记录分割符(换行符),指定输出时的换行符 NF number of Field,当前行的字段数,即当前行有几列 NR 行号,当前处理的文本行的行号 FNR 个文件分别计数的行号 FILENAME 当前文件名 ARGC 命令行参数的个数 ARGV 数组,保存的时命令行所给定的各参数 $0 当前处理行的整行内容 $n 当前行的第n各字段 awk脚本基本结构 awk ‘BEGIN{ commands } pattern{ commands } END{ commands }’ 第一步:执行BEGIN{commands}中的语句,在awk读取输入流之前执行,可选项 第二步: 从文件或标准输入读取一行,然后执行pattern{commands}语句块,会逐行扫描文件,默认执行{print} ,可选项 第三步:当读至输入流末尾时,执行END{commands}语句块,可选语句块 awk '{print}' name.txt #输出所有内容 awk 'NR==1,NR==3 {print}' name.txt #输出第 1~3 行内容 awk 'NR==1;NR==3 {print}' name.txt #输出第 1和第3 行内容 awk '(NR>=1)&&(NR


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有